# 装饰器
import time


# 装饰器,记录函数运行时间
def decorator01(fun):
    def wapper():
        stime = time.time()
        fun()
        etime = time.time()
        print("fun run time is {TIME}".format(TIME=etime - stime))
    return wapper  # 必须要返回一个函数的内存地址


# 使用装饰器装饰某个函数,等价于 test01=decorator01(test01),
# 即将test01实际引用变成wapper函数内存地址,所以执行test01实际是执行wapper
@decorator01
def test01():
    time.sleep(2)
    print("test01 is running")


test01()  # 不修改代码和调用方式,实现添加记录时间功能
